import pandas as pd
import itertools
# 基线
  # 检查结果：不合规
  #return 每一个ip 检查组名称 in （帐号管理	口令管理	系统服务	补丁漏洞管理	安全配置	日志审计）  检查项名称(0)
  #[{ip:,zhgl:,klgl:,xtfu:,ldgl:,aqpz:,rzpz:} ]
list_result=[]
check_group=['账号','口令','补丁漏洞','远程登录','安全配置','日志审计']
new_dict={
    'ip':'',
    'zhgl':'', #帐号管理
     'klgl':'',#口令管理
     'xtfu':'',#系统服务
     'ldgl':'正常',#补丁漏洞管理
     'aqpz':'',#安全配置
     'rzpz':''#日志审计

}
# 检查结果
def check_result(a):
    return a=='不合规'

# 写入到execl



# 读取基线xlsxw文件
Consumption = pd.read_excel('IMS基线核查结果.xlsx', sheet_name='Sheet1')
# 设置显示列
Consumption[['IP地址','检查项名称','检查组名称','检查结果']]
Consumption_check_result = Consumption.loc[Consumption.检查结果.apply(check_result)]
list=Consumption_check_result['IP地址'].replace('/n','')
news_list = []
for id in list:
 if id not in news_list: # 当id不在news_list中就添加,在就不添加,达到去重的目的
     news_list.append(id)

for i in news_list:
    # 设置ip
    new_dict['ip']=i
    new_Consumption_check_result =Consumption_check_result[(Consumption_check_result.IP地址 ==i)]
    list =  new_Consumption_check_result['检查组名称'].replace('/n', '')
    # 检查组名称
    list_1=[]
    for j in check_group:
        for i in list:
            if j  in i:
                list_1.append(i)
                break

    for i in list_1:
       result= new_Consumption_check_result[(new_Consumption_check_result.检查组名称 ==i)]['检查项名称'].replace('/n', '').tolist()[0]
       if '账号' in i:
           new_dict['zhgl']=result
       elif '口令' in i:
           new_dict['klgl'] = result
       elif '补丁漏洞' in i:
           new_dict['ldgl'] = result
       elif '安全配置' in i:
           new_dict['aqpz'] = result
       elif '远程登录' in i:
           new_dict['aqpz'] = result
       elif '日志审计' in i:
           new_dict['rzpz'] = result
    # print(new_dict)
    list_result.append(new_dict)
print(len(list_result))




